%    Copyright (C) 1994, 2000 Aladdin Enterprises.  All rights reserved.
% 
% This software is provided AS-IS with no warranty, either express or
% implied.
% 
% This software is distributed under license and may not be copied,
% modified or distributed except as expressly authorized under the terms
% of the license contained in the file LICENSE in this distribution.
% 
% For more information about licensing, please refer to
% http://www.ghostscript.com/licensing/. For information on
% commercial licensing, go to http://www.artifex.com/licensing/ or
% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
% San Rafael, CA  94903, U.S.A., +1(415)492-9861.

% $Id: gs_ccfnt.ps,v 1.8 2003/04/12 18:08:18 ray Exp $
% Find and register all the precompiled font operators in systemdict.

/registerfont			% <fontname> <fontdict> registerfont <font>
 { CCFONTDEBUG { (Registering ) print 1 index = } if
   dup begin
     Encoding type /nametype eq
      { Encoding .findencoding /Encoding exch def
      }
     if
     dup /PrefEnc known
      { PrefEnc type /nametype eq
	 { PrefEnc .findencoding /PrefEnc exch def
	 }
	if
      }
     if
     dup /FDepVector known
      { /FDepVector [ FDepVector
	 { .FontDirectory 1 index .knownget
	    { exch pop }
	    { ccfonts 1 index .knownget
	       { registerfont
	       }
	       { Fontmap 1 index known
		  { findfont }
		  { pop NullFont }
		 ifelse
	       }
	      ifelse
	    }
	   ifelse
	 }
	forall ] readonly def
      }
     if
   end
   % Use the value of definefont appropriate at run-time, not bind-time
   /definefont load exec
 } bind odef
% Bind recursive call (bind descends into oparrays: feature!)
/registerfont dup load bind def

/.loadinitialfonts {
  //.loadinitialfonts exec
  NOCCFONTS not {
    /ccfonts mark
      0 1 null .getccfont 1 sub { .getccfont dup /FontName get exch } for
    .dicttomark def
		% Make sure these fonts are registered as "resources".
    currentfile {
      pop ccfonts {
	.FontDirectory 2 index known { pop pop } { registerfont pop } ifelse
      } forall
    } .execasresource
    currentdict /ccfonts .undef
  } if
} bind def

currentdict /registerfont .undef
